getBalancedEndpoints(eventName, groups, ctx) {
		const res = [];

		this.events.forEach(list => {
			if (!utils.match(eventName, list.name)) return;
			if (groups == null || groups.length === 0 || groups.indexOf(list.group) !== -1) {
				// Use built-in balancer, get the next endpoint
				const ep = list.next(ctx);
				if (ep && ep.isAvailable) res.push([ep, list.group]);
			}
		});

		return res;
	}
Get balanced endpoint for event

@param {String} eventName
@param {String|Array?} groups
@param {Context} ctx
@returns
@memberof EventCatalog