internal void AddConnection(Node targetNode, double distance, bool twoWay)
{
if (targetNode == null) throw new ArgumentNullException("targetNode");
if (targetNode == this) throw new ArgumentException("Node may not connect to itself.");
if (distance <= 0) throw new ArgumentException("Distance must be positive.");
_connections.Add(new NodeConnection(targetNode, distance));
if (twoWay) targetNode.AddConnection(this, distance, false);
}