In console, i make this simple test
> location.hash
""
> can.route.attr()
Object {}
> location.hash = "#!test=1"
"#!id=1"
> can.route.attr()
Object {}
Normally can.route.attr() -> Object {id = "1"} , no ?