Convenience version of a common use case of `filter`:
        selecting only objects
        containing specific `key:value` pairs.

def where(self, attrs=None, first=False):
        """
        Convenience version of a common use case of `filter`:
        selecting only objects
        containing specific `key:value` pairs.
        """
        if attrs is None:
            return None if first is True else []

        method = _.find if first else _.filter

        def by(val, *args):
            for key, value in attrs.items():
                try:
                    if attrs[key] != val[key]:
                        return False
                except KeyError:
                    return False
                return True

        return self._wrap(method(self.obj, by))