For the other example you'd have to tweak it to use the 8dir movement instead of what it uses now.
With just horizontal and vertical walls you could use the overlaps at offset condition to see if there's a wall next to it and just invert the X or y vector depending on which side a wall is. You could do it like the following. The first step would be to get the Sprite out of the wall, that is where custom movement is useful. On another note you could also compare the X and y velocity in addition to the wall detection, since you only need to bounce against walls you're moving toward.
Sprite overlaps wall
Sprite: customMovement: push out of solid
Sprite: overlaps wall at offset (-1,0)
Sprite: overlaps wall at offset (1,0)
Sprite: set xvelocity to -self.xvelocity
Sprite: overlaps wall at offset (0,-1)
Sprite: overlaps wall at offset (0,1)
Sprite: set yvelocity to -self.yvelocity