``kwds`` is a dictionary containing one pre-initialized key, ``defects``.
``defects`` is an empty list. The parse method should append any detected
defects to this list. On return, the ``kwds`` dictionary *must* contain
- values for at least the keys ``decoded`` and ``defects``. ``decoded``
- should be the string value for the header (that is, the header value fully
- decoded to unicode). The parse method should assume that *string* may
+ values for at least the keys ``decoded``, ``defects`` and ``parse_tree``.
+ ``decoded`` should be the string value for the header (that is, the header
+ value fully decoded to unicode). ``parse_tree`` is set to the parse tree obtained
+ from parsing the header. The parse method should assume that *string* may
contain content-transfer-encoded parts, but should correctly handle all valid
unicode characters as well so that it can parse un-encoded header values.