During my analysis of update: methods (I started to extract conditional leaves : simple refactoring no change) and I found the following

We are lucky because this is SimpleHierarchicalListMorph and I prefer not to think about ComplexHierarchicalList�

update: aSymbol 
aSymbol == getSelectionSelector 
ifTrue: 
[self selection: self getCurrentSelectionItem.
^self].
aSymbol == getListSelector 
ifTrue: 
[self list: self getList.
^self].
((aSymbol isKindOf: Array) 
and: [aSymbol size > 1 and: [aSymbol first == getListSelector and: [
aSymbol second == #openPath]]]) "allow directed path opening where multiple trees exist"
ifTrue: 
[^(scroller submorphs at: 1 ifAbsent: [^self]) 
openPath: (aSymbol allButFirst: 2)].
((aSymbol isKindOf: Array) 
and: [aSymbol size > 1 and: [aSymbol first == getListSelector and: [
aSymbol second == #openItemPath]]]) "allow directed path opening where multiple trees exist"
ifTrue: 
[^(scroller submorphs at: 1 ifAbsent: [^self]) 
openItemPath: (aSymbol allButFirst: 2)].
((aSymbol isKindOf: Array) 
and: [aSymbol notEmpty and: [aSymbol first == #openPath]]) 
ifTrue: 
[^(scroller submorphs at: 1 ifAbsent: [^self]) 
openPath: aSymbol allButFirst].
((aSymbol isKindOf: Array) 
and: [aSymbol size  = 2 and: [aSymbol first = getListSelector and: [
aSymbol second == #expandRoots]]]) 
ifTrue: 
[^self expandRoots].
((aSymbol isKindOf: Array) 
and: [aSymbol notEmpty and: [aSymbol first = getListSelector and: [
aSymbol second == #expandAll]]]) 
ifTrue: 
[^self expandAll]