public void Register(IDependencyDefinition dependency)
        {
            //var key = dependency.PluginType.IsGenericType && dependency.ConcreteType.IsGenericType
            //              ? dependency.PluginType.GetGenericTypeDefinition()
            //              : dependency.PluginType;

            var key = dependency.PluginType;

            Definitions
            .AddOrUpdate(key,
                         x => new List <IDependencyDefinition>()
            {
                dependency
            },
                         (x, y) =>
            {
                if (IsDuplicate(dependency))
                {
                    EliminateDuplicateDependencies(dependency, y, key);
                }
                y.Add(dependency);
                return(y);
            });
        }