How to add a custom module to a menu?
Menu items are nested using the item path. Take look to the paragraphs module:

/**
 * Implements hook_menu().
 */
function paragraphs_menu() {
  $items = array();
  $items['admin/structure/paragraphs'] = array(
    'title' =&gt; 'Paragraph Bundles',
    'description' =&gt; 'Manage Paragraph bundles',
    'page callback' =&gt; 'paragraphs_admin_bundle_overview',
    'access arguments' =&gt; array('administer paragraphs bundles'),
    'file' =&gt; 'paragraphs.admin.inc',
  );

  $items['admin/structure/paragraphs/list'] = array(
    'title' =&gt; 'List',
    'type' =&gt; MENU_DEFAULT_LOCAL_TASK,
    'weight' =&gt; -10,
  );

  $items['admin/structure/paragraphs/add'] = array(
    'title' =&gt; 'Add Paragraph Bundle',
    'page callback' =&gt; 'drupal_get_form',
    'page arguments' =&gt; array('paragraphs_admin_bundle_form'),
    'access arguments' =&gt; array('administer paragraphs bundles'),
    'type' =&gt; MENU_LOCAL_ACTION,
    'file' =&gt; 'paragraphs.admin.inc',
  );

  $items['admin/structure/paragraphs/%paragraphs_bundle'] = array(
    'title' =&gt; 'Edit paragraph bundle',
    'title callback' =&gt; 'paragraphs_bundle_title_callback',
    'title arguments' =&gt; array(3),
    'page callback' =&gt; 'drupal_get_form',
    'page arguments' =&gt; array('paragraphs_admin_bundle_form', 3),
    'access arguments' =&gt; array('administer paragraphs bundles'),
    'file' =&gt; 'paragraphs.admin.inc',
  );

  ...

  return $items;
}


Also if you want to add your menu item to an existing menu other than administration use the menu key. 

$items['menu-item'] = array(
  'title' =&gt; 'Foo bar',
  'page callback' =&gt; 'drupal_get_form',
  'page arguments' =&gt; array('foo_bar'),
  'menu' =&gt; 'user_menu'
);


Check the hook documentation for more information.