I need to switch themes based on the request origin.
The theme switcher isn't the problem, I have written a theme switcher that works.
The problem is the behaviour when the theme is switched at runtime (while other requests are being processed).
Orchard will render the correct shapes for the selected theme.
Orchard will not change the routes/controllers/dependencies. These are loaded during Orchard Setup which only happens once.
Using urls per theme is the only want to solve this problem. We wanted all client to have the same urls and have Orchard switch behaviour under the hood.