openBrowser( url, vars ) {
		if ( !url ) {
			throw new Error( "Missing URL" );
		}

		const hasVars = vars && typeof vars === "object";
		url = url.replace( reVariable, ( _, name ) => {
			if ( !hasVars || !hasOwnProperty.call( vars, name ) ) {
				throw new Error( `Missing value for key '${name}'` );
			}

			return vars[ name ];
		});

		Shell.openExternal( url );
	}
@param {string} url
@param {Object<string,string>?} vars
@returns {string}