public bool Inspect <TRoutedMessage, TRoutedKey>(BatchMessageRouter <TRoutedMessage, TRoutedKey> element)
            where TRoutedMessage : class, BatchedBy <TRoutedKey>
        {
            if (typeof(TRoutedMessage) == typeof(TMessage))
            {
                Router = element.TranslateTo <BatchMessageRouter <TMessage, TKey> >();

                return(false);
            }

            return(true);
        }
        private static BatchMessageRouter <TMessage, TBatchId> ConfigureRouter <TMessage, TBatchId>(MessageRouter <TMessage> messageRouter)
            where TMessage : class, BatchedBy <TBatchId>
        {
            if (messageRouter == null)
            {
                throw new PipelineException("The base object router was not found");
            }

            BatchMessageRouter <TMessage, TBatchId> router = new BatchMessageRouter <TMessage, TBatchId>();

            messageRouter.Connect(router);

            return(router);
        }