function oneOf (list, msg) {
    if (msg) flag(this, 'message', msg);
    var expected = flag(this, 'object');
    new Assertion(list).to.be.an('array');

    this.assert(
        list.indexOf(expected) > -1
      , 'expected #{this} to be one of #{exp}'
      , 'expected #{this} to not be one of #{exp}'
      , list
      , expected
    );
  }
### .oneOf(list)

Assert that a value appears somewhere in the top level of array `list`.

    expect('a').to.be.oneOf(['a', 'b', 'c']);
    expect(9).to.not.be.oneOf(['z']);
    expect([3]).to.not.be.oneOf([1, 2, [3]]);

    var three = [3];
    // for object-types, contents are not compared
    expect(three).to.not.be.oneOf([1, 2, [3]]);
    // comparing references works
    expect(three).to.be.oneOf([1, 2, three]);

@name oneOf
@param {Array<*>} list
@param {String} message _optional_
@namespace BDD
@api public