integrateModules(source) {
    if (!this.modules && !source) return;
    if (source && source.modules) this.modules = source.modules.slice(0);

    if (this.modules) {
      for (let i = 0, max = this.modules.length; i < max; i++)
        this.applyModule(this.modules[i], false);
    }

    if (source) this.applyBridge({onCopy: source});
  }
@method integrateModules
@instance
@description This method applies all modules from .modules collection.
@param {Object} [source] If source (should be a component) is provided, will replace .modules with source's one before executing modules.
@memberof module:core.ModuleSystem