SortedDictionary was used for keeping solver related data, but because of the new ordering of the parameters I had to remove them. Initially I tried to replace only the shapeList SortedDictionary, but this causes wrong references to be passed to the Solver and no solutions are found. I've been working on updating all the other relevant SortedDictionaries and fixing the code that relied on those dictionaries being sorted.
There are still some more fixes to be done and a lot of testing. Until we get to more complicated shapes, here is how two parallel lines behave: