             let included1 = self.pointIsContainedInBooleanResult(point: point1, operation: operation)
             let included2 = self.pointIsContainedInBooleanResult(point: point2, operation: operation)
             edge.inSolution = (included1 != included2)
-            if !isForFirstPath, edge.inSolution, operation != .removeCrossings {
-                // remove duplicate coincident edges
-                let rule: PathFillRule = .evenOdd
-                let edge1 = self.graph1.path.contains(point1, using: rule) != self.graph1.path.contains(point2, using: rule)
-                let edge2 = self.graph2.path.contains(point1, using: rule) != self.graph2.path.contains(point2, using: rule)
-                if edge1, edge2 {
-                    edge.inSolution = false
-                }
-            }
         }
         func classifyComponentEdges(in component: PathComponentGraph) {
             component.forEachNode {

        }
        return self.endingNode.pathComponent.split(from: startingNode.componentLocation, to: nextLocation)
    }
}

private class PathComponentGraph {

        var path1Intersections: [Node] = []
        var path2Intersections: [Node] = []
        intersections.forEach {
            let node1 = Node(location: $0.indexedPathLocation1, in: path1)
            let node2 = Node(location: $0.indexedPathLocation2, in: path2)
            node1.addNeighbor(node2)
            node2.addNeighbor(node1)
            path1Intersections.append(node1)
