Each mode has its own set of actions, which can be bound to keys of your choice using the 'bind' command (see /Syntax). To see a list of current key bindings for a given mode, hit '?' (a.k.a. 'the menu'). It will show you all available functions, even those unbound. There is a set of generic bindings that will work by default in every mode unless a specific context binding overrides the keys. You might want to have some CheatSheets for some often used default bindings.
Some actions are available in more than 1 mode, and most of those commands are shared between "index" and "pager". Yet, to control the same action in both modes with the same key requires that you configure the key for both separately.
bind index K mail bind pager K mail
Also RTFM about "auto_tag, delete_untag, print_split, print_decode, pipe_split, pipe_decode" for your options how to adjust <tag-prefix> behaviour.
You can specify literal keys, which is extremely useful to fill in dialog input that you normaly enter manually. However, you should limit literal keys exactly to this purpose of editor input. For portability of a macro into the environment of another user's keybindings it's recommended that you use the "<function>" syntax to call actions rather than your currently bound key for that function, even though it looks more complicated.
bad: macro pager K 'c+bla\nm' good: macro pager K '<change-folder>+bla<enter><mail>'
See /Macros for a longer introduction.
When mutt has reached a point where it can't auto-complete on its own (no more or too many matches), you can hit TAB another time ("TAB-TAB") to make mutt enter "folder browser" mode: mutt shows all entries matching the given (partial) path. That's the same as "c?" == start with empty partial path. Have a look for "$mask" to set personal filters for files displayed.
Note: if the browsing after "c?" or "c<TAB><TAB>" ends in a different directory than you started, then the internal "browsing directory" for the next directory scan will be set to that last browsed directory. This directory is also used as current relative for any file operation without full path. The initial "browsing directory" is set to the value of $folder. To make sure that you start out your browsing with the "$folder" base even after changing dirs, always use "+" or "=" as initial path to be completed! (see /Folders)
c+<TAB><TAB>
When in "folder browser", you can hit '?' to see its specific key bindings for extra functions. Some of them are only useful and therefore available with IMAP enabled. Others are generally useful, like going to "mailboxes" list, which is bound to <TAB> by default: to get there from the start you have to hit
c?<TAB> or c<TAB><TAB><TAB>
page, line, thread, subthread, new, unread, new-then-unread, undeleted, entry
Most important to remember is the distinction between "undeleted" and "entry",
so that you can move to marked as deleted messages, which normally are jumped over.
The difference between "unread" and "new" is that if instructed via $mark_old,
then mutt will mark new but yet unread messages as "old" when you leave the folder. See /Index.
At last, of course you have absolute movement, too:
As long as $mime_forward is unset (the default), attachments will be automatically inserted into the body of the message. On the other hand, you may override the default, and either be prompted to forward the message ('ask-'yes/no) or do it automatically ('yes').
Forwarding messages as attachments has its advantages and disadvantages. It is advantageous because, in essence, you are sending a complete copy of the message to the receipient. All headers are kept intact, which can be helpful, for example, in reporting spammers. On the other hand, if you want to be able to see and work with the original message (ideal for mailing lists and casual e-mails), then it is safe to leave $mime_forward alone.
Keep in mind that $mime_forward is a 'quadoption' variable, and by setting it to 'ask-yes' or 'ask-no', you will be prompted each time you forward.