Same problem with curl. Should I be able to get an nsh on usbmodem1? I could have sworn I got this to work at some point. Can't seem to get it to work. 

The fixed transition table is just the start and sets the base for whether the transition is ever possible. After that there are a couple special cases which are checked in the code. But most transitions are fixed, so I think it ends up being worthwhile and easier to see the full set of possiblities. I tend to use the pattern of using data instead of code a lot, so it's second nature to me (but not necessarily anyone else). If you think it's more confusing this way, I can switch it back.