'Get a I{flattened} list of this nodes contents.
@param collection: A list to fill.
@type collection: list
@param filter: A filter used to constrain the result.
@type filter: L{Filter}
@param history: The history list used to prevent cyclic dependency.
@type history: list
@return: The filled list.
@rtype: list'

def content(self, collection=None, filter=Filter(), history=None):

    if (collection is None):
        collection = []
    if (history is None):
        history = []
    if (self in history):
        return collection
    history.append(self)
    if (self in filter):
        collection.append(self)
    for c in self.rawchildren:
        c.content(collection, filter, history[:])
    return collection
