and
http://www.dgp.toronto.edu/people/JamesStewart/270/9798s/Laf...
I myself coded an implementation of this algorithm for a map itinerary project. It's powerful in my opiniom.