Ideally, we'd want to remove items in reverse order to how they were created. But we don't store creation order - so let's at least do this in "reverse-like" order:
- first remove items from handlers listed later in order
- when removing items for single handler, do them in reverse lexicographical order (longest first)
Ideally, we'd want to remove items in reverse order to how they were created. But we don't store creation order - so let's at least do this in "reverse-like" order: