Elite dangerous allows the user to assign controller button combinations.
Eg, hold one button to act like a mode switch, then all your other buttons do a different function.
This is achieved simply by allowing the user to hold down more than one button when assigning functions. This can double or even triple the number of assignments and combinations available.
All games should do this. FS2 users could benefit greatly from this.