docs: def filter(self, filters):
          """
          Pass in a list of tuples where each tuple represents one filter.
          The first element of the tuple is the name of the column to
          filter on and the second value is a regular expression which
          each value in that column will be compared against.  If the
          regular expression matches the value in that column, that
          lineitem will be included in the new Costs object returned.
  
          Example:
  
              filters=[('ProductName', '.*DynamoDB')]
  
          This filter would find all lineitems whose ``ProductName``
          column contains values that end in the string ``DynamoDB``.
          """
          subset = Costs(self._columns)
          filters = [(col, re.compile(regex)) for col, regex in filters]
          for lineitem in self._lineitems:
              for filter in filters:
                  if filter[1].search(lineitem[filter[0]]) is None:
                      continue
                  subset.add(lineitem)
          return subset