code: function (vTargets, vData, sTitleTarget, oSequencePromise, fnAfterCreate) {
  			var that = this,
  				aViewInfos = [];
  
  			if (!Array.isArray(vTargets)) {
  				vTargets = [vTargets];
  			}
  
  			this._attachTitleChanged(vTargets, sTitleTarget);
  
  			return vTargets.reduce(function(oPromise, vTarget) {
  				var oTargetInfo = vTarget;
  
  				if (typeof vTarget === "string") {
  					oTargetInfo = {
  						name: vTarget
  					};
  				}
  
  				var oTargetCreateInfo = {
  					afterCreate: fnAfterCreate,
  					prefix: oTargetInfo.prefix
  				};
  
  				// gather view infos while processing Promise chain
  				return that._displaySingleTarget(oTargetInfo, vData, oPromise, oTargetCreateInfo).then(function(oViewInfo) {
  					oViewInfo = oViewInfo || {};
  					oViewInfo.targetInfo = oTargetInfo;
  					aViewInfos.push(oViewInfo);
  				});
  			}, oSequencePromise).then(function() {
  				return aViewInfos;
  			});
  		}
docs: hook to distinguish between the router and an application calling this
  @param {array|object} vTargets targets or single target to be displayed
  @param {object} vData  an object that will be passed to the display event in the data property. If the
  target has parents, the data will also be passed to them.
  @param {string} sTitleTarget the name of the target from which the title option is taken for firing the {@link sap.ui.core.routing.Targets#event:titleChanged titleChanged} event
  @param {Promise} oSequencePromise the promise for chaining
  @param {function} [fnAfterCreate] the function which will be called when the Target View/Component is instantiated
  @return {Promise} resolving with {{name: *, view: *, control: *}|undefined} for every vTargets, object for single, array for multiple
  
  @private