def edge(name, tail, head, attrs = {})
      component Edge, [name, tail, head], attrs
    end
def edge(name, tail, head, attrs = {})
      component Edge, [name, tail, head], attrs
    end
Creates a new edge
 @param name [String] the name (identifier) of the edge
 @param tail [Node] the edge's tail node
 @param head [Node] the edge's head node
 @param attrs [Hash{String, Symbol => Object}] the attributes
 to associate with this edge
 @see http://www.graphviz.org/doc/info/attrs.html Node, Edge and Graph Attributes
 @return [Edge] the newly created edge