has(type, callback, scope) {
		if (typeof this.events[type] === 'undefined') {
			// Check if the passed type even exists
			return false; // If not, quit method
		}

		// If callback and scope are undefined then every registered event is match, thus any event of the type matches
		let numOfCallbacks = this.events[type].length;
		if (callback === undefined && scope === undefined) {
			// If scope and callback are not defined
			return numOfCallbacks > 0; // If there are any callbacks we can be sure it matches the passed one
		}

		const conditionFn = event => {
			const scopeIsSame = scope ? event.scope === scope : true; // Check if scope is equal to the one passed
			const callbackIsSame = event.callback === callback; // Check if callback is equal to the one passed
			if (scopeIsSame && callbackIsSame) {
				// Check if current event and passed event are equal
				return true; // If so, break loop and return true
			}
		};
		return this.events[type].some(conditionFn);
	}
Checks if the passed event is registered in the EventBus
@param {string} type Type of the to be checked event
@param {callback} callback Callback of the to be checked event
@param {object} scope Scope of the to be checked event