https://www.cyclestreets.net/help/journey/routing/
at the most basic level it lets you choose between fastest and quietest routes, understands hills, cycle paths, etc.
There's many, many other choices https://wiki.openstreetmap.org/wiki/Routing
contraction hierarchies https://en.wikipedia.org/wiki/Contraction_hierarchies made cross-continent route planning practical and practically instant, eg in GraphHopper. A lot of the options listed there work offline.
https://www.cyclestreets.net/help/journey/routing/
at the most basic level it lets you choose between fastest and quietest routes, understands hills, cycle paths, etc.
There's many, many other choices https://wiki.openstreetmap.org/wiki/Routing
contraction hierarchies https://en.wikipedia.org/wiki/Contraction_hierarchies made cross-continent route planning practical and practically instant, eg in GraphHopper. A lot of the options listed there work offline.