title: Joi validate ignores nested keys
body: <p>This is my Joi validation:</p>
  
  <pre><code>let schema = Joi.object().keys({
    personal_info: Joi.object().keys({
      first_name: Joi.string().min(2).max(10).regex(Regex.alphabeta, 'alphabeta').required().error(JoiCustomErrors),
      last_name: Joi.string().min(2).max(10).regex(Regex.alphabeta, 'alphabeta').required().error(JoiCustomErrors),
      phone: Joi.string().min(10).max(10).regex(Regex.num, 'num').required().error(JoiCustomErrors),
      nickname: Joi.string().min(3).max(12).regex(Regex.alphanum, 'alphanum').required().error(JoiCustomErrors),
      birthday: Joi.date().max(`01-01-${new Date().getFullYear()-8}`).required().error(JoiCustomErrors),
      IDNumber: Joi.string().min(9).max(9).regex(Regex.num, 'num').required().error(JoiCustomErrors),
      address: Joi.object().keys({
        city: Joi.string().valid(Cities).required().error(JoiCustomErrors),
        street: Joi.string().min(2).max(15).regex(Regex.alphabeta, 'alphabeta').required().error(JoiCustomErrors),
        house_number: Joi.string().min(1).max(5).regex(Regex.alphanum, 'alphanum').error(JoiCustomErrors)
      })
    }),
    permission_level: Joi.number().min(1).max(9).required().error(JoiCustomErrors)
  });
  Joi.validate(req.body, schema, { abortEarly: false }, (err) =&gt; {
    if (err) return cast.joiError(err);
    return create_employee(result);
  });
  </code></pre>
  
  <p><strong>Explain:</strong></p>
  
  <p>All nested keys that are inside <code>personal_info</code> object are not getting checked. That means - If I take <code>first_name</code> and put it on parent (not under <code>personal_info</code>) it's getting checked by the schema validator - as should be.</p>
  
  <p>What am I doing wrong?</p>