code: def remove(self, iterable, data=None, index=0):
          
          if index == len(iterable):
              if self.is_terminal:
                  if data:
                      self.data.remove(data)
                      if len(self.data) == 0:
                          self.is_terminal = False
                  else:
                      self.data.clear()
                      self.is_terminal = False
                  return True
              else:
                  return False
          elif iterable[index] in self.children:
              return self.children[iterable[index]].remove(iterable, index=index+1, data=data)
          else:
              return False
docs: Remove an element from the trie
  
          Args
              iterable(hashable): key used to find what is to be removed
              data(object): data associated with the key
              index(int): index of what is to me removed
  
          Returns:
          bool:
              True: if it was removed
              False: if it was not removed