only ask if `t` is empty once.
do not create memo objects since we'll just throw them away
combine move_regexp and move_string so we only loop over states once
push move_string in to `move`
Merge branch 'rmc'

* rmc:
  push move_string in to `move`
  combine move_regexp and move_string so we only loop over states once
  do not create memo objects since we'll just throw them away
  only ask if `t` is empty once.