You can move a sprite and not have to code for any sprites/objects you place on the screen as the players sprite will bounce back and not be able to move through any object.
You can also push another object with the players sprite.
Just an idea for you so you don't have to use a teleport code for when the players sprite bumps anything.
You asked me about a way to solve the glitch when pressing two arrows at once like "Up and Right" that causes the sprite to not detect it's surroundings.
An easy way to solve this is have a dot set it's position to above an arrow when pressed and only have the players sprite move if the dots at a certain x-y position above an arrow.