static getMatchingBudget(budgets, url) {
    if (budgets === null || url === undefined) return;

    // Applies the LAST matching budget.
    for (let i = budgets.length - 1; i >= 0; i--) {
      const budget = budgets[i];
      if (this.urlMatchesPattern(url, budget.path)) {
        return budget;
      }
    }
  }
Returns the budget that applies to a given URL.
If multiple budgets match based on thier 'path' property,
then the last-listed of those budgets is returned.
@param {LH.Util.Immutable<Array<LH.Budget>>|null} budgets
@param {string|undefined} url
@return {LH.Util.Immutable<LH.Budget> | undefined} budget