- another recursion missed when matching
- remove duplicates and setable in-place