Why can't I bind a toggle to the Shift key?

alias run_on "-speed; alias toggle_run run_off"
alias run_off "+speed; alias toggle_run run_on"
run_off
bind z toggle_run // This works.
bind CTRL toggle_run // This works.
bind SHIFT toggle_run // This doesn't work.

I tried unbinding Shift before binding it. That didn't help.

Also:

-speed
bind SHIFT +speed // This works.