I'm pretty sure that ember had an internal object called Ember.State at one point and another called Ember.StateManager to (naturally) manage the relationships between states. This was a few years back so I can't say what's happened internally since then, but as far as I remember the router was intended to basically encapsulate the logic of an FSM.