3.0 router extensions

All method unifications done in #4497 with passing tests plus using `$options` instead of `$merge`.