There are probably dozens of things that fit that description, but I want to focus on one feature I've really been using a lot lately. The feature is simply called "Moves Tree" and is buried in the Utilities menu of the main game windows. It is both more powerful and more useful than it initially appears.
Let's start out by making a new game from scratch using the menu items "Tool - Create Your Own Game." Now, for the purposes of this article, let's just pick a random opening position.
Now, if you go to the menu item "Utilities - Moves Tree" you will get a new window with a list of every possible move from that position. The first move of the list is on the board because it is highlighted by default. You can single-click any other move in the list and that move will appear on the board.
Well, that's useful, but we don't want to look at every possible move. What we should do instead is narrow it down to candidate moves. There are two good ways to do this. One is to just select the moves you want to assign a rating yourself. Another is to let the computer assign evaluations to some or all of the moves and rate the moves according to that. If you wish to do the former, just leave out the computer analysis step and go ahead and manually assign the ratings. For this article, I will be allowing the computer to evaluate the moves for instruction's sake.
To start, click the yellow rectangle icon (fourth from the left) in the icon toolbar above the move list. The tooltip for this icon is "Analyze." You will want to set the engine to a strong one and decide how long you want it to "think." Also, you should decide how many moves you want it to evaluate for you. I chose 60 seconds for the time and maximum for the number of candidate moves to evaluate.
Again, great information, but not what we really need. Our goal was to pare down the list of moves to a reasonable list. Based on the data the engine gave us, it appears there is one good move to make with several others that are speculative at best. For simplicity's sake, I'm going to rate the top two moves. Highlight the top move and then click the purple square icon in the icon toolbar whose tool tip is "Rating." Here, you choose a color-coded square icon for each move to describe the quality of that move. For the first move, I just selected the blue "Good move" rating. For the second move in the list, I called it a "Speculative move." How you rate the moves is really up to you. The main idea is that the moves you want to keep for the future you give some rating to.
Finally, click the light bulb icon on the icon toolbar whose tool tip is "Show/Hide." Select the menu items "Hide - No rating." You are left with a much more manageable list of candidate moves for the position. Click back on the first move in our list and click the plus icon in the icon toolbar whose tool tip is "Open new branch." This is where you will start to see the power of the feature.
You will see a new list of every legal move from the position after that first candidate move was made. If you pare this list down to a few candidate moves and repeat the process a few times, you will have the first branch of a move tree. If you go back to our original branch and click the plus icon, you can make an entirely new branch off of that moves. Of course, anywhere along the way, you can make new branches for each move in the move list of your branch.
But wait, there's more! Click on one of the moves in your tree and then click the speech balloon icon in the icon toolbar whose tool tip is "Comments." You can add a description, annotation, evaluation, or whatever you'd like for each node in the tree with this function. It will display in the tree in the "Comments" column.
Now, click "Save" in the top left corner of the window, and you're done. The craziest part is any time you come back to that position, even when analyzing a totally different game, that moves tree will show up for that position. Try it! Close the created game you were making and start a new one without saving the previous one. If you make those same moves again and open a new moves tree window, you will see your previous moves tree with the branches closed.
To re-open a branch, just click the plus sign while highlighting the move. In the saved tree view, you can see if a move has a branch hidden under it by the "up arrow caret" symbol next to the move.