void Encode(Word word, MorseNode root) {
        //Log.WriteLine("Encoding {0}", word);
        MorseNode n = root;
        char c;
        for (int i = 0; i < word.Morse.Length; i++) {
            c = word.Morse[i];
            if (c == '.') {
                if (n.Dot == null) {
                    n.Dot = new MorseNode(n);
                }
                n = n.Dot;
            }
            else {
                if (n.Dash == null) {
                    n.Dash = new MorseNode(n);
                }
                n = n.Dash;
            }
            if (i == word.Morse.Length - 1) {
                n.WordsEndingHere.Add(word.Letters);
                if (n.WordsEndingHere.Count > 1) {
                    for (int j = 0; j < n.WordsEndingHere.Count; j++) {
                        //Log.WriteLine("{0} shares this ending.", n.WordsEndingHere[j]);
                    }
                }
                //Log.WriteLine("Done.");
            }
        }

    }
 public MorseNode(MorseNode parent) {
     Parent = parent;
 }