code: def make_worlist_trie(wordlist):
      
      dicts = dict()
  
      for w in wordlist:
          curr = dicts
          for l in w:
              curr = curr.setdefault(l, {})
          curr['__end__'] = '__end__'
  
      return dicts
docs: Creates a nested dictionary representing the trie created
      by the given word list.
  
      :param wordlist: str list:
      :return: nested dictionary
  
      >>> make_worlist_trie(['einander', 'einen', 'neben'])
      {'e': {'i': {'n': {'a': {'n': {'d': {'e': {'r': {'__end__': '__end__'}}}}}, 'e': {'n': {'__end__': '__end__'}}}}}, 'n': {'e': {'b': {'e': {'n': {'__end__': '__end__'}}}}}}