The problem is that ember builds up the url based on the models for each route. When it tries to build up the route below the active/all route it uses your array of items (which doesn't have a field on it called filter) so it doesn't know how to determine if it's currently has the all/filter model. A good practice is to have your slug (the :value in the path) match the property on the model.
If it doesn't match you can override the serialize method in the route, so ember knows how to serialize your model for the url.
App.CustomersFiltersRoute = Ember.Route.extend({
model: function(params) {
if(params.filter == "active") {
return _.where(App.Customers, {isActive: true});
}
return App.Customers;
},
serialize: function(model){
if(model === App.Customers){
return {filter:'all'};
}
return {filter:'active'};
}
});