Pardon my ignorance but doesn't the order at which keys are appended matter?
If you want to guarantee that it's appended to the end we could do:
```
while key in self._key_order:
    self._key_order.remove(key)
self._key_order.append(key)
```

Is that not important?