One thing that in my opinion was not well defined was the deliniation between a module "definition" and a module "definition" object. A module's definition is the base info on the module and that contains one or more "definintions" - what I call control groupings. At least that is my understanding that keeps me sane.
Each "control" as in mycontrol.ascx is represented as a "control" in a module's definition or grouping. I know of no limit of how many controls you can have. In one of my modules, I have over 20 controls, and adding as I continue to develop and refine. I have this broken into two folders or modules - like the repository/dashboard module. On one, where the master data for the app is entered and maintained, I have seven control grouping or definition, with 15 controls. Each "defninitiion" has two controls - view and edit, and one has the settings.ascx.
In my other module folder (essentially its own module like the repository dashboard) - I have two module definitions, one with four controls, and one with three. These use the EditURL, but point to another control in the link:
NavigateUrl
='<%# EditUrl("ItemID", Eval("ItemID").ToString(), "ViewDetails") %>
You can use the EditURL, just remember to change the control and supply the correct information required. In the first module definition method, it adds all the default (view) controls to the page at once - which any definition you have with a default view control will be added to the page when you add the module to a pane.
I hope this clears it up - I struggled with this concept for a while, mainly since I started using DNN with 4.0.x and asp.net 2.0, and the documentation was still geared towards the older versions. There are examples of DNN asp.net 2.0 development, but most are very simplistic in nature - at least while I was trudging through it.