Check out the latest version of Routino: svn co http://routino.org/svn/trunk routino
If a selected waypoint is not very close to an existing node then insert a fake node in the segment that comes closest and use that instead.