code: def match_app_version(self, app=None, label=None, version=None, default=False):
          if not app or not label and not (app and label):
              target_app = [a for a in self.app_versions if a.get('app') == app or a.get('label') == label]
              if not target_app and not isinstance(default, bool):
                  raise NotFoundError("Could not find the app or label provided")
              elif not target_app and isinstance(default, bool):
                  return default
          else:
              raise IllegalArgumentError("Please provide either app or label")
          if not version:
              raise IllegalArgumentError("Please provide semantic version string including operand eg: `>=1.0.0`")
          app_version = target_app[0].get('version')
          if target_app and app_version and version:
              import semver
              return semver.match(app_version, version)
          elif not app_version:
              if isinstance(default, bool):
                  return default
              else:
                  raise NotFoundError("No version found on the app '{}'".format(target_app[0].get('app')))