pruneSelfIntersections takes an optional function

This aids in finding the first valid selfIntersection
which controls where the collection process begins.