The de-facto solution to flexible routing with nested views in AngularJS
Create the next immutable state by mutating the current one