assert = function () {
              var result = method.apply(this, arguments);
              return result === undefined ? this : result;
            }
### addChainableMethod (ctx, name, method, chainingBehavior)

Adds a method to an object, such that the method can also be chained.

    utils.addChainableMethod(chai.Assertion.prototype, 'foo', function (str) {
      var obj = utils.flag(this, 'object');
      new chai.Assertion(obj).to.be.equal(str);
    });

Can also be accessed directly from `chai.Assertion`.

    chai.Assertion.addChainableMethod('foo', fn, chainingBehavior);

The result can then be used as both a method assertion, executing both `method` and
`chainingBehavior`, or as a language chain, which only executes `chainingBehavior`.

    expect(fooStr).to.be.foo('bar');
    expect(fooStr).to.be.foo.equal('foo');

@param {Object} ctx object to which the method is added
@param {String} name of method to add
@param {Function} method function to be used for `name`, when called
@param {Function} chainingBehavior function to be called every time the property is accessed
@name addChainableMethod
@api public