<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def count_curves(self, keys=None, alias=None):
 """ Counts the number of curves in the well that will be selected with the given key list and the given alias dict. Used by Project's curve table. """

        if keys is None:
            keys = [k for k, v in self.data.items() if isinstance(v, Curve)]
        else:
            keys = utils.flatten_list(keys)

        return len(list(filter(None, [self.get_mnemonic(k, alias=alias) for k in keys])))