reimplement Module::route