Addition of Custom Waypoints

Now you can spell out funny words with your paths ;P
In fact, shouldn't the condition always be satisfied at this point?  This should be ensured by the "if" you have.  Personally, I would replace the three lines above with:

if (!cwp.emtpy ())
  {
    assert (cwp.back () == wp.front ());

At this point, we already know that we want to chain the two paths together - no matter where we got them.  Thus I think we shouldn't check for ctrlPressed here.  And when this is the case, we should always have constructed the new path wp such that it fits together with cwp, thus the condition can be assert'ed.

But I realise this is just a matter of taste - sorry for being such an annoyance for you. ;)