Merge `router` and `proprouter`, make them more universal.