The Graphhopper routing service is great for cycling. It even has different bike profiles, walking and hiking. The bike profile is essentially a touring bike and the algo is tuned to avoid slopes. Road bike sticks to the road, MTB uses backroads and footpaths. Hiking prefers more scenic route even if they're longer.