Good point on adding some docstrings. I'll also add some to `ActionBase`.

I originally did try overloading `__getitem__` in a _dict_ based class, but turns out as _dict_ is implemented in C rather than python, it doesn't behave as expected. You have to pretty much overload every method. In fact in python3, they created a `UserDict`[1] method so you can easily overload a _dict_.

[1]: http://docs.python.org/3/library/collections.html#collections.UserDict