Don't force the cycle param to lower().
Check for ending in either 'mode' or 'Mode'.
This way camel-case custom modes can be handled properly.
All lowercase commands can still work since it still uppercases the first letter.
Simplify variable selection to use 'or' shortcuts.