How to import from subdirectories?
To learn more about importing from subdirs, you should be reading Stackoverflow and googling stuff like 'how to import from sub directories in Python` : python-import-a-file-from-a-subdirectory , this is a general Python question and has many good answers and links.

I'll answer the Blender specifics (reduced version) of this code. no pie, no keymaps. We can test if a class/Operator was correctly imported and registered by using the spacebar menu and search for the operator's bl_label ( here Boolean 2D Union ) , and launch it from there.



That operator has a poll to test if at least two faces are selected before showing up in the menu or spacebar search. Here you can see we successfully imported that class and registered it.

Importing from sub directories

I've prepared a small zip at this repostory : https://github.com/zeffii/some_test_addon , which you can Install from File.

if your add-on's folder structure is like this.

addon_name     &lt;-- avoid spaces in the add-on folder names
|
+ __init__.py
+ included_addons   &lt;-- avoid folders named just 'addons'
  |
  + __init__.py   &lt;---  (often empty) tells Python that this folder is a module.
  + boolean_2d_union.py


it should work this way, from the top level __init__.py

bl_info = {
    "name": "Some Test Addon",
    "author": "----",
    "version": (0, 1),
    "blender": (2, 76, 0),
    "category": "User Interface",
}

import bpy

from .included_addons import boolean_2d_union


def register():
    # this line will throw an exception if you press F8 and don't
    # have any classes defined in this __init__.py file, but usually
    # this file has at least some classes either for a property collection 
    # or addon preferences.. or a menu drawing function.
    bpy.utils.register_module(__name__)

def unregister():
    bpy.utils.unregister_module(__name__)


Registration

When boolean_2d_union.py is imported, Boolean2DUnion is registered for you by bpy.utils.register_module(__name__).

There are many subtleties attached to multi-file addons regarding reload code and I think this is outside of the scope of your question, but further reading is suggested.


See more information about the reload event here: Blender ignores changes to python scripts  
See the mesh_tinyCAD add-on's structure for a multi-file example with load / reload code that I think you can get your head around.  


some insight  

Does this work if I hit F8 (accidentally or intentionally). You might temporarily add some print events into __init__.py to get a sense of what's happening during that reload event, and get an idea of what has been loaded when.

bl_info = {
    "name": "Some Test Addon",
    "author": "----",
    "version": (0, 1),
    "blender": (2, 76, 0),
    "category": "User Interface",
}

import bpy

if 'boolean_2d_union' in locals():
    print('1 -- RELOAD EVENT (f8)')
    print("don't need to reload an unchanged file")
else:
    from .included_addons import boolean_2d_union
    print('2')

def register():
    print('3')
    bpy.utils.register_module(__name__)
    if 'bpt' in dir(bpy.ops):
        print(dir(bpy.ops.bpt))  # will show   ['boolean_2d_union']
        print('4')
    print('5')

def unregister():
    print('6')
    bpy.utils.unregister_module(__name__)


Read the source of any of the multifile add-ons to see how they deal (or don't deal) with the F8 reload event. As a developer it's handy to have reload handling code so you don't have to keep closing/reopening Blender. Sometimes it is inevitable to have to close/reload, but get F8 working first and then if the reload didn't pick up your changes 


either fix the reload to take new files into account 
or restart