/// <summary>
 /// Defines a custom chain within the router.
 /// </summary>
 /// <typeparam name="TInput">Input type of the chain.</typeparam>
 /// <param name="chainDefinition">Chain definition</param>
 public void DefineChain <TInput>(Func <ChainBuilder, IChain <TInput> > chainDefinition)
     where TInput : IRuleContext
 {
     Chains.AddChain(chainDefinition);
 }