code: def mutate_add_connection(self, config):
          '''
          Attempt to add a new connection, the only restriction being that the output
          node cannot be one of the network input pins.
          '''
          possible_outputs = list(iterkeys(self.nodes))
          out_node = choice(possible_outputs)
  
          possible_inputs = possible_outputs + config.input_keys
          in_node = choice(possible_inputs)
  
          if in_node == out_node:
              return
  
          # # Don't duplicate connections.
          # key = (in_node, out_node)
          # if key in self.connections:
          #     return
  
          cg = self.create_connection(config, in_node, out_node)
          self.connections[cg.key] = cf mutate_add_connection(self, config):
          '''
          Attempt to add a new connection, the only restriction being that the output
          node cannot be one of the network input pins.
          '''
          possible_outputs = list(iterkeys(self.nodes))
          out_node = choice(possible_outputs)
  
          possible_inputs = possible_outputs + config.input_keys
          in_node = choice(possible_inputs)
  
          if in_node == out_node:
              return
  
          # # Don't duplicate connections.
          # key = (in_node, out_node)
          # if key in self.connections:
          #     return
  
          cg = self.create_connection(config, in_node, out_node)
          self.connections[cg.key] = cg
docs: Attempt to add a new connection, the only restriction being that the output
          node cannot be one of the network input pins.