'Filters the list by only including embedded documents with the
given keyword arguments.
:param kwargs: The keyword arguments corresponding to the fields to
filter on. *Multiple arguments are treated as if they are ANDed
together.*
:return: A new ``EmbeddedDocumentList`` containing the matching
embedded documents.
Raises ``AttributeError`` if a given keyword is not a valid field for
the embedded document class.'

def filter(self, **kwargs):

    values = self.__only_matches(self, kwargs)
    return EmbeddedDocumentList(values, self._instance, self._name)
