code: def add_dependency(key, dependencies = [])
  
        raise SelfDependencyError, "An object's dependencies cannot contain itself" if dependencies.include? key
  
        node = node_for_key_or_new key
        dependencies.each do |dependency|
          node.addEdge(node_for_key_or_new(dependency))
        end
        resolve_dependencies
      end
docs: Add a new node, causing dependencies to be re-evaluated