I've also been implementing routing over OSM data - using the Boost graph library (BGL). I have a GUI written in PyQT4 interfacing with a routing backend written in C++, using Boost python to create the interface between the two languages.
<br>It's a nice solution because there are a large number of algorithms in the BGL and they've all been very thoroughly tested.<br><br>I was also considering using the boost spirit parser to allow users to specify edge costs using expressions - so if, for instance, you were a law-breaking cyclist, you could specify that you were happy too cycle down one-way streets the wrong way if ever it would save you significant time over a legal route ;-)
<br><br>I'm very happy to contribute any code I have or to pitch in if anyone needs any help (I have a lot of experience with graph algorithms).<br><span class="sg"><br>Alex Wilson<br>
</span>