private E_CLOSURE_NODE Perform_MoveToOperation(E_CLOSURE_NODE eClosureNode, Dictionary <char, Stack <NODE> > moveToDictionary)
        {
            E_CLOSURE_NODE eClosureNode_it = Find_EClosureNode(eClosureNode);
            E_CLOSURE_NODE return_eClosureNode;

            if (eClosureNode_it != null)
            {
                eClosureNode.Delete();

                return_eClosureNode = eClosureNode_it;
            }
            else
            {
                eClosureNodes.Add(eClosureNode.NodeID, eClosureNode);

                foreach (KeyValuePair <char, Stack <NODE> > moveTo in moveToDictionary)
                {
                    EDGE newEClosureEdge = new EDGE(moveTo.Key, Get_EClosureNode(moveTo.Value));
                    eClosureNode.edges.Add(newEClosureEdge);
                }

                return_eClosureNode = eClosureNode;
            }

            return(return_eClosureNode);
        }