public override RouterConfig WithFallback(RouterConfig routerConfig)
{
var other = routerConfig as RemoteRouterConfig;
if(other != null && other.Local is RemoteRouterConfig)
throw new ArgumentException("RemoteRouterConfig is not allowed to wrap a RemoteRouterConfig", "routerConfig");
if (other != null && other.Local != null)
return Copy(Local.WithFallback(other.Local).AsInstanceOf<Pool>());
return Copy(Local.WithFallback(routerConfig).AsInstanceOf<Pool>());
}