Following some question and answers on the pip issue, I've got a first pass at improved link comparison logic for constraints. The organization seems kind of bad, but I'm hoping that'll get hammered out in the PR process, since I'm still not really familiar with the code. In any case, I like what these changes do to the code. It makes the interpretation of the link data much more consistent, so I think this code would be less buggy even if it hadn't originally had a show-stopper bug. I anticipate that this will fix several test failures, but I let this all go late, so I don't want to run the tests tonight.
I'll get to them sometime tomorrow.