### Describe the bug

The following test code in `AxiosHeaders.js`

```
  describe('clear', ()=> {
    it('should clear all headers', () => {
      const headers = new AxiosHeaders({x: 1, y:2});

      headers.clear();

      assert.notDeepStrictEqual(headers, {});
    });

    it('should clear matching headers if a matcher was specified', () => {
      const headers = new AxiosHeaders({foo: 1, 'x-foo': 2, bar: 3});

      assert.notDeepStrictEqual(headers, {foo: 1, 'x-foo': 2, bar: 3});

      headers.clear(/^x-/);

      assert.notDeepStrictEqual(headers, {foo: 1, bar: 3});
    });
  });
```

Doesn't fail if you remove the implementation for `headers.clear()`

### To Reproduce

Remove the following lines

```
  clear(matcher) {
    const keys = Object.keys(this);
    let i = keys.length;
    let deleted = false;

    while (i--) {
      const key = keys[i];
      if(!matcher || matchHeaderValue(this, this[key], key, matcher)) {
        delete this[key];
        deleted = true;
      }
    }

    return deleted;
  }
```

to 

```
  clear(matcher) {
    return true;
  }
```

### Code snippet

_No response_

### Expected behavior

Tests should fail

### Axios Version

_No response_

### Adapter Version

_No response_

### Browser

_No response_

### Browser Version

_No response_

### Node.js Version

_No response_

### OS

_No response_

### Additional Library Versions

_No response_

### Additional context/Screenshots

_No response_
lib/core/AxiosHeaders.js
constructor(headers) {
    headers && this.set(headers);
  }
  set(header, valueOrRewrite, rewrite) {
    const self = this;
    function setHeader(_value, _header, _rewrite) {
      const lHeader = normalizeHeader(_header);
      if (!lHeader) {
        throw new Error('header name must be a non-empty string');
      }
      const key = utils.findKey(self, lHeader);
      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {
        self[key || _header] = normalizeValue(_value);
      }
    }
    const setHeaders = (headers, _rewrite) =>
      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
    if (utils.isPlainObject(header) || header instanceof this.constructor) {
      setHeaders(header, valueOrRewrite)
    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
      setHeaders(parseHeaders(header), valueOrRewrite);
    } else {
      header != null && setHeader(valueOrRewrite, header, rewrite);
    }
    return this;
  }
  get(header, parser) {