for assigning different inputs (user actions) dynamically to outputs (system activities), I am using the standard [router] object.
Unfortunately, the whole thing kind of fails if the triggered activity tries to change the interconnections within the router object, eg. a certain user activity (button x pressed) changes the way future inputs are routed.
When using router for that, it leads to stack overflows as the control messages sent to the left outlet get routed through router as well.
The same thing implemented with [gate] works as expected.