@floppy @manyfold the only real lever you have is ActionDispatch::Routing::Mapper::Base#mount, which is intended to be called on startup in routes.rb. You *could* call it later and mount other engines, I guess*, but there's no opposite #unmount.
*Would require some fiddling with ActionDispatch::Routing::RouteSet#draw via disable_clear_and_finalize because the default behaviour there is to clear routes when called.
In short, it's a voyage of discovery because there's no mechanism obvious to me.