function assertEqual (val, msg) {
        if (msg) flag(this, 'message', msg);
        var obj = flag(this, 'object');
        if (flag(this, 'deep')) {
          return this.eql(val);
        } else {
          this.assert(
              val === obj
            , 'expected #{this} to equal #{exp}'
            , 'expected #{this} to not equal #{exp}'
            , val
            , this._obj
            , true
          );
        }
      }
### .equal(value)

Asserts that the target is strictly equal (`===`) to `value`.
Alternately, if the `deep` flag is set, asserts that
the target is deeply equal to `value`.

    expect('hello').to.equal('hello');
    expect(42).to.equal(42);
    expect(1).to.not.equal(true);
    expect({ foo: 'bar' }).to.not.equal({ foo: 'bar' });
    expect({ foo: 'bar' }).to.deep.equal({ foo: 'bar' });

@name equal
@alias equals
@alias eq
@alias deep.equal
@param {Mixed} value
@param {String} message _optional_
@api public