idk what you have tried, but i feel like this would work
alias "bind0" "say test; alias bind bind1"
alias "bind1" "say ; alias bind bind0"
alias "bind" "bind0"
bind w +mfwd;+bind
bind s +mback;+bind
bind a +mleft;+bind
bind d +mright;+bind
alias +mfwd "-back;+forward;alias checkfwd +forward"
alias +mback "-forward;+back;alias checkback +back"
alias +mleft "-moveright;+moveleft;alias checkleft +moveleft"
alias +mright "-moveleft;+moveright;alias checkright +moveright"
alias -mfwd "-forward;checkback;alias checkfwd none"
alias -mback "-back;checkfwd;alias checkback none"
alias -mleft "-moveleft;checkright;alias checkleft none"
alias -mright "-moveright;checkleft;alias checkright none"
alias checkfwd none
alias checkback none
alias checkleft none
alias checkright none
alias none ""