docs: def add_node(self, transformer, name=None, children=None, parent=None,
                   parameters={}, return_node=False):
          ''' Adds a node to the current graph.
  
          Args:
              transformer (str, Transformer): The pliers Transformer to use at
                  the to-be-added node. Either a case-insensitive string giving
                  the name of a Transformer class, or an initialized Transformer
                  instance.
              name (str): Optional name to give this Node.
              children (list): Optional list of child nodes (i.e., nodes to pass
                  the to-be-added node's Transformer output to).
              parent (Node): Optional node from which the to-be-added Node
                  receives its input.
              parameters (dict): Optional keyword arguments to pass onto the
                  Transformer initialized at this Node if a string is passed to
                  the 'transformer' argument. Ignored if an already-initialized
                  Transformer is passed.
              return_node (bool): If True, returns the initialized Node instance.
  
          Returns:
              The initialized Node instance if return_node is True,
                  None otherwise.
          '''
  
          node = Node(transformer, name, **parameters)
          self.nodes[node.id] = node
  
          if parent is None:
              self.roots.append(node)
          else:
              parent = self.nodes[parent.id]
              parent.add_child(node)
  
          if children is not None:
              self.add_nodes(children, parent=node)
  
          if return_node:
              return node