move singleton state to Router instance

(now tests can pass and we don't need any weird
teardown methods)