def remove(self, iterable, data=None, index=<NUM_LIT:0>):
if index == len(iterable):<EOL><INDENT>if self.is_terminal:<EOL><INDENT>if data:<EOL><INDENT>self.data.remove(data)<EOL>if len(self.data) == <NUM_LIT:0>:<EOL><INDENT>self.is_terminal = False<EOL><DEDENT><DEDENT>else:<EOL><INDENT>self.data.clear()<EOL>self.is_terminal = False<EOL><DEDENT>return True<EOL><DEDENT>else:<EOL><INDENT>return False<EOL><DEDENT><DEDENT>elif iterable[index] in self.children:<EOL><INDENT>return self.children[iterable[index]].remove(iterable, index=index+<NUM_LIT:1>, data=data)<EOL><DEDENT>else:<EOL><INDENT>return False<EOL><DEDENT>
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