3.0 router extensions

All method unifications done in #4497 with passing tests plus using `$options` instead of `$merge`.
I see you didn't touch this, but while you're at it I feel it should be `extensions` (plural).