Restraining input meshes to have a euler characteristic of 2, will also block meshes that this algorithm can easily solve. Most simple example: two non intersecting cubes (EC = 4). E.g.

```
+---------+ +---------+ +---------+
| | | | | |
| | | | | +---+ |
| | | | or | | | |
| | | | | +---+ |
| | | | | |
+---------+ +---------+ +---------+
```

You have a valid point, but you can’t expect an algorithm to take care of everything. Garbage in = Garbage out.