/// <summary>
        /// Initializes a new instance of the <see cref="T:System.Object" /> class.
        /// </summary>
        /// <param name="container">The container.</param>
        /// <param name="engine">The chat engine.</param>
        /// <exception cref="System.ArgumentNullException">engine, container</exception>
        internal ChatHandlersProvider(
            [NotNull] IObjectContainer container, [NotNull] ChatEngine engine)
        {
            if (container == null) { throw new ArgumentNullException(nameof(container)); }
            if (engine == null) { throw new ArgumentNullException(nameof(engine)); }

            RootNode = new AimlExplorerNode(container, engine.RootNode);
        }
 /// <summary>
 /// Rebuilds the child collection.
 /// </summary>
 private void RebuildChildren()
 {
     _children.Clear();
     foreach (KeyValuePair<string, Node> pair in _node.Children)
     {
         Debug.Assert(pair.Value != null);
         var child = new AimlExplorerNode(_container, pair.Value);
         _children.Add(child);
     }
 }