//public IReadOnlyDictionary<string, WordTreeNode> GetChildrens() => _children;
        //public WordTreeNode GetChild(Word word)
        //{
        //    return this._children[word.Value];
        //}

        public WordTreeNode AddChildren(WordTreeNode node)
        {
            ReplaceParent(node)
            .AddChildren(node.Item.Value, node);
            //._children.Add(item.GetHashCode(), item);

            return(this);
        }
        private WordTreeNode ReplaceParent(WordTreeNode node)
        {
            if (node.Parent != null)
            {
                node.Parent.RemoveChildren(node.Item.Value);
            }

            node.Parent = this;

            return(this);
        }