'If the feature with the given name or path exists, return
its value; otherwise, raise ``KeyError``.'

def __getitem__(self, name_or_path):

    if isinstance(name_or_path, (string_types, Feature)):
        return dict.__getitem__(self, name_or_path)
    elif isinstance(name_or_path, tuple):
        try:
            val = self
            for fid in name_or_path:
                if (not isinstance(val, FeatStruct)):
                    raise KeyError
                val = val[fid]
            return val
        except (KeyError, IndexError):
            raise KeyError(name_or_path)
    else:
        raise TypeError((self._INDEX_ERROR % name_or_path))
