A Vector is a floating point type. Not sure, but I would guess your match statement won't work because the value will never be exactly 1 or exactly 0. For example, you can set a float to "1" but in the computer it will actually be "1.00000001" or something like that. You can replace the match with a series of if statements. For example:
if movedir.x < -0.99:
spritedir = "left"
elif movedir.x > 0.99:
spritedir = "right"
# other if statements
$anim.play(spritedir)
Also, you should try to avoid checking for exact numbers. This line could cause a problem:
if movetimer == 0
It is better to always do something like this:
if movetimer <= 0
Since sometimes the values can keep going depending on the logic and then it will get stuck or never happen.